package com.xdcplus.web.service;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.entity.ToolProductionLineTool;
import com.xdcplus.web.common.pojo.dto.ToolProductionLineToolDTO;
import com.xdcplus.web.common.pojo.dto.ToolProductionLineToolFilterDTO;
import com.xdcplus.web.common.pojo.vo.ToolProductionLineToolVO;

import java.util.List;


/**
 * (ToolProductionLineTool)表服务接口层
 *
 * @author Man.Chen
 * @since 2024-12-03 16:41:13
 */
public interface ToolProductionLineToolService extends BaseService<ToolProductionLineTool, ToolProductionLineTool, ToolProductionLineToolVO> {

    /**
     * 添加(ToolProductionLineTool)
     *
     * @param toolProductionLineToolDTO (ToolProductionLineToolDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveToolProductionLineTool(ToolProductionLineToolDTO toolProductionLineToolDTO);

    /**
     * 修改(ToolProductionLineTool)
     *
     * @param toolProductionLineToolDTO (ToolProductionLineToolDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateToolProductionLineTool(ToolProductionLineToolDTO toolProductionLineToolDTO);

    /**
     * 批量保存或更新(ToolProductionLineTool)
     *
     * @param toolProductionLineToolList (ToolProductionLineToolList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<ToolProductionLineTool> toolProductionLineToolList);

    /**
     * 批量保存或更新(ToolProductionLineToolDTOList)
     *
     * @param toolProductionLineToolDTOList (ToolProductionLineToolDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<ToolProductionLineToolDTO> toolProductionLineToolDTOList);

    /**
     * 删除(ToolProductionLineTool)
     *
     * @param id (ToolProductionLineTool)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteToolProductionLineToolLogical(Long id);
    
    Boolean deleteToolProductionLineToolByIds(String ids);

    /**
     * 查询(ToolProductionLineTool)
     *
     * @param toolProductionLineToolFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<ToolProductionLineToolVO>} 状态信息
     */
    List<ToolProductionLineToolVO> queryToolProductionLineToolVOList(ToolProductionLineToolFilterDTO toolProductionLineToolFilterDTO);

    /**
     * 查询(ToolProductionLineTool)
     *
     * @param toolProductionLineToolFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<ToolProductionLineToolVO>} 状态信息
     */
    PageVO<ToolProductionLineToolVO> queryToolProductionLineTool(ToolProductionLineToolFilterDTO toolProductionLineToolFilterDTO);

    /**
     * 查询一个
     *
     * @param id (ToolProductionLineTool)主键
     * @return {@link ToolProductionLineToolVO} (ToolProductionLineTool)信息
     */
    ToolProductionLineToolVO queryToolProductionLineToolById(Long id);
}
